#include<string>//用C++风格的字符串要包含这个头文件
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
/*main函数是程序的入口 有且仅有一个*/
int main()
{
	//在屏幕中输出一段hello world
	cout << "hello world" << endl;
	//变量创建的语法：数据类型 变量名 = 变量初始值
	int a = 10;
	cout << "a = "<<a << endl;
	//常量的定义方式
	//1.#define宏常量
	//2.const修饰的变量
#define day 7
	//int day = 7;仍然无效
	cout <<"一周总共有" << day <<"天" << endl;
	short num1 = 10;
	cout << "short占用内存空间为" << sizeof(num1) << endl;
	cout << "int占用内存空间大小为" << sizeof(int) << endl;
	cout << "long占用内存空间大小为" << sizeof(long) << endl;
	cout << "long long占用内存空间大小为" << sizeof(long long) << endl;

	//整形大小比较
	//short<int<=long<=long long

	//浮点型分为两种
	//1.单精度float:7位有效数字
	//2.双精度double:15~16位有效数字
	float f1 = 3.14f;
	cout << "f1=" << f1 << endl;
	double d1 = 3.14;
	cout << "d1 = " << d1 << endl;

	cout << "float所占内存空间为" << sizeof(float) << endl;
	cout << "double所占内存空间为" << sizeof(double) << endl;

	//科学计数法
	float f2 = 3e2;// 3 * 10 ^2
	cout << f2 << endl;
	double f3 = 3e-2;// 3 * 10 ^-2
	cout << f3 << endl;

	//字符型变量并不是把字符本身放到内存中存储，而是将对应的ASCII编码放入到存储单元
	//常见错误:
	//1.ch="a"//不能用双引号
	//2.ch='abc'//''中只能有一个字符
	char ch1 = 'a';
	cout << ch1 << endl;
	cout << "char所站的内存空间为" << sizeof(char) << endl;

	cout << (int)'b' << endl;//a--97  A--65

	//转义字符
	//1.换行符\n
	cout << "hello world\n";

	//2.反斜杠\\
	
	cout<<"\\"<<endl;


	//3.水平制表符 \t
	cout << "aaaa\taaa" << endl;// \t占据八个位置 前面4个位置被a占了 所以只有4个空格
	cout << "aa\taaa" << endl;//同上
	cout << "aaaaaa\taaa" << endl;//打印出来后看起来会很整齐
	//cout << "aaaaaaaaa\taaa" << endl;//前面有九个a 就不占前面的八个位置，占后面的八个位置

	//字符串型
	//1.C风格的字符串：char 变量名[] = "hello world"
	//2.c++风格的字符串：string 变量名 = "hello world"
	
	//1.C风格
	char str1[] = "hello world";
	cout << str1 << endl;
	//注意事项！
	//char 后面要加入[] 不然就变成字符了
	//=后面要用双引号包含起来字符串


	//C++风格
	string str2 = "hello world";
	cout << str2 << endl;
	//注意事项！ 要包含头文件
	

	//布尔类型 bool //只占用1内存大小
	//true---真---1
	//false---假---0
	bool flag1 = true;
	bool flag2 = false;
	cout << flag1 << endl;
	cout << flag2 << endl;

	//数据的输入:
	//关键字:cin(作用类似于c语言中的scanf)
	//1.整型
	int a1;
	cout << "请给a1整型赋值:";
	cin >> a1;  //注意用大于号 名字:右运算符
	cout << "a1的大小为: " << a1 << endl;


	//2.浮点型
	float f4;
	cout << "请给f3浮点型赋值:";
	cin >> f4;
	cout << "f3为" << f4 << endl;

	//3.字符型
	char ch2;
	cout << "请给ch2字符型赋值";
	cin >> ch2;
	cout << "ch2为" <<ch2<< endl;

	//4.字符串型
	//C++风格的
	string str3; //要记得包含头文件
	cout << "请给str3字符串型变量赋值";
	cin >> str3;
	cout << "str3为" << str3 << endl;

	//5.布尔类型
	bool flag3;
	cout << "请给flag3布尔类型变量赋值:";
	cin >> flag3;
	cout << "flag3为" << flag3 << endl;
	//布尔类型中只有0代表假 其他数字均代表真





	system("pause");
	return 0;
}